package portal.entities;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import portal.converter.convVo;
import portal.vo.ItemVO;
import Utils.Helpers;

@Entity
@Table(name="Items")
public class Item extends AbstractEntity<ItemVO>{
	

	private Producto itemProducto;	
	private int cantidad;
	private Compra compra;
	
	
	
	@Transient
	protected ItemVO getVOInstance() {
		return new ItemVO();
	}
	
	public static List<ItemVO> getListVO(List<Item> l){
		List<ItemVO> listaVO = new ArrayList<ItemVO>(); 
		
		listaVO = convVo.getListaVoFromEntity(l);
		
		return listaVO;		
	}
	
	@Transient
	public ItemVO getVO() {
		ItemVO vo = new ItemVO();
		vo.setCantidad(cantidad);
		vo.setItemProducto(this.itemProducto.getVO());
		//vo.setCompra(this.compra.loadVOForService());
		return vo;
	}

	@Transient
	public void setVO(ItemVO vo) {
		if (id == null) {
			this.setId(vo.getId());
		}
		
		this.setCantidad(vo.getCantidad());		
		this.setItemProducto(Helpers.getProductoFromVO(vo.getItemProducto()));	
		
//		Compra compra = new Compra();
//		compra.setVO(vo.getCompra());
//		this.compra = compra;
	}
	

	public int getCantidad(){
		return this.cantidad;
	}
	

	public void setCantidad(int c){
		this.cantidad = c;
	}
	
	@ManyToOne
	@JoinColumn(name="ProductoID")
	public Producto getItemProducto(){
		return this.itemProducto;
	}
	

	public void setItemProducto(Producto p){
		this.itemProducto = p;
	}

	@ManyToOne
	@JoinColumn(name="compraID")
	public Compra getCompra() {
		return compra;
	}


	public void setCompra(Compra compra) {
		this.compra = compra;
	}
	
	
	
	
}
